package aiku.numericalcontroloa.Model.Entity.EmployeeAttendance;

import aiku.numericalcontroloa.Model.Entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.sql.Time;
import java.time.LocalDate;
import java.util.Date;

/**
 * @Author 黄广庭
 * @Date 2024/2/26 16:31
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName(value = "attendance")
public class Attendance extends BaseEntity implements Serializable {
    /**
     * 关联clockin_standard表的id字段
     */
    @TableField(value = "clockin_rule_id")
    String clockinRuleId;

    /**
     * 员工id
     */
    @TableField(value = "employee_id")
    String employeeId;

    /**
     * 打卡日期
     */
    @TableField(value = "clocking_date")
    LocalDate clockingDate;

    /**
     * 上午签到时间
     */
    @TableField(value = "forenoon_checkin_time")
    Time forenoonCheckinTime;

    /**
     * 上午签退时间
     */
    @TableField(value = "forenoon_checkout_time")
    Time forenoonCheckoutTime;

    /**
     * 下午签到时间
     */
    @TableField(value = "afternoon_checkin_time")
    Time afternoonCheckinTime;

    /**
     * 下午签退时间
     */
    @TableField(value = "afternoon_checkout_time")
    Time afternoonCheckoutTime;

    /**
     * 签到位置
     */
    @TableField(value = "clockin_position")
    String clockinPosition;

    @TableField(value = "fci_clockin_position")
    String fciClockinPosition;

    @TableField(value = "fco_clockin_position")
    String fcoClockoutPosition;

    @TableField(value = "aci_clockin_position")
    String aciClockinPosition;

    @TableField(value = "aco_clockin_position")
    String acoClockoutPosition;

    /**
     * 上午出勤情况（0正常，1迟到，2早退，3旷工，4请假，5迟到&早退，6未签退，7迟到&未签退）
     */
    @TableField(value = "forenoon_status")
    Integer forenoonStatus;

    /**
     * 下午出勤情况（0正常，1迟到，2早退，3旷工，4请假，5迟到&早退，6未签退，7迟到&未签退）
     */
    @TableField(value = "afternoon_status")
    Integer afternoonStatus;

    /**
     * 打卡类型（0普通，1外勤，2出差）
     */
    @TableField(value = "clockin_type")
    Integer clockinType;
}
